/*
 ============================================================================
 Name		: ListenVoaAppUi.h
 Author	  : JohnLZeng
 Copyright   : Your copyright notice
 Description : Declares UI class for application.
 ============================================================================
 */

#ifndef __LISTENVOAAPPUI_h__
#define __LISTENVOAAPPUI_h__

// INCLUDES
#include <aknappui.h>
#include <aknviewappui.h>

#include <remconcoreapitargetobserver.h>    // link against RemConCoreApi.lib 
#include <remconcoreapitarget.h>            // and 
#include <remconinterfaceselector.h>        // RemConInterfaceBase.lib

#include "SHModel.h"
#include "UIManager.h"
#include "SHError.h"

// FORWARD DECLARATIONS
class CListenVoaAppView;

class CHelpView;
class CLogoView;
class CDocDetailView;
class CRSSBriefView;
class CDownloadManageView;
class CNormalSettingView;

class CQQReaderModule;
class CQTextSetting;

class CEngineManager;
// CLASS DECLARATION
/**
 * CListenVoaAppUi application UI class.
 * Interacts with the user through the UI and request message processing
 * from the handler class
 */
class CListenVoaAppUi : public CAknViewAppUi , public  MRemConCoreApiTargetObserver
	{
public:
	// Constructors and destructor
	void ConstructL();
	CListenVoaAppUi();
	virtual ~CListenVoaAppUi();

private:
	// Functions from base classes
	void HandleCommandL(TInt aCommand);
	void HandleStatusPaneSizeChange();

	// From MRemConCoreApiTargetObserver   
	void MrccatoCommand(TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction aButtonAct);    
public:
	CSHModel* GetModel()
		{
		return iDataModel;
		}
	;
	CUIManager* GetUI()
		{
		return iUIMgr;
		}
	;
	
	CEngineManager* GetEngine()
		{
		return iEngineManager;
		}
	;
	
	void SHError(const TSHErrInfo& aInfo, const TSHErrState& aState);

private:
	void About();
	
	void InitRem();
	void ReleaseRem();

private:
	// Data
	CListenVoaAppView* iAppView;

	CHelpView* iHelpView;
	CLogoView* iLogoView;
	CDocDetailView* iDocDetail;
	CRSSBriefView* iRssBrief;
	CDownloadManageView* iDownloadManagerView;
	CNormalSettingView* iSettingView;

	CSHModel* iDataModel;
	CUIManager* iUIMgr;
	CEngineManager* iEngineManager;

	CQQReaderModule* 		iReaderModule;
	CQTextSetting* iTextSetting;
	
    CRemConInterfaceSelector* iInterfaceSelector;     
    CRemConCoreApiTarget*     iCoreTarget; 
	};

#endif // __LISTENVOAAPPUI_h__
// End of File
